


#include <stdio.h>


//#include <assert.h>
//#include <stdlib.h>
//#include <string.h>
//#include <ctype.h>
//
//char* sortSentence(char* s)
//{
//    char* ppc[9] = { 0 };
//    for (int i = 0; i < 9; ++i)
//    {
//        ppc[i] = (char*)calloc(201, sizeof(char));
//        assert(ppc[i]);
//    }
//
//    int i = 0, sz = strlen(s);
//    int beg = 0, end = 0;
//    while (i < sz)
//    {
//        if (isdigit(s[i]))
//        {
//            end = i;
//
//            int j = 0;
//            while (beg < end)
//            {
//                ppc[s[i] - '0' - 1][j++] = s[beg++];
//            }
//
//            beg += 2;
//            i = beg;
//            continue;
//        }
//
//        ++i;
//    }
//
//    int cnt = 0;
//    for (int i = 0; i < sz; ++i)
//    {
//        if (isblank(s[i]))
//            ++cnt;
//    }
//
//    char* ans = (char*)calloc(sz - (cnt + 1) + 1, sizeof(char));
//    assert(ans);
//
//    int k = 0, j = 0;
//    for (int i = 0; i < 9; ++i)
//    {
//        
//        j = 0;
//        if (0 == ppc[i][j])
//        {
//            ans[k - 1] = 0;
//            break;
//        }
//
//        while (ppc[i][j])
//        {
//            ans[k++] = ppc[i][j++];
//        }
//        ans[k++] = ' ';
//    }
//
//    for (int i = 0; i < 9; ++i)
//    {
//        free(ppc[i]);
//        ppc[i] = NULL;
//    }
//
//    return ans;
//}
//int main()
//{
//    char* s = "QcGZ4 TFJStgu3 HvsRImLBfHd8 PaGqsPNo9 mZwxlrYzanuVOUZoyNjt1 fzhdtYIen6 mV7 LKuaOtefsixxo5 pwdEK2";
//
//    printf(sortSentence(s));
//
//	return 0;
//}

int findLHS(int* nums, int numsSize)
{
    if (1 == numsSize)
        return 0;

    int min = nums[0], max = nums[0];
    for (int i = 1; i < numsSize; ++i)
    {
        if (min > nums[i])
        {
            min = nums[i];
        }

        if (max < nums[i])
        {
            max = nums[i];
        }
    }

    int cnt[max - min + 1];
    for (int i = 0; i < max - min + 1; ++i)
    {
        cnt[i] = 0;
    }

    for (int i = 0; i < numsSize; ++i)
    {
        cnt[nums[i] - min]++;
    }

    int ans = 0;
    for (int i = 0; i < numsSize - 1; ++i)
    {
        int tmp = 0;
        for (int j = i + 1; j < numsSize; ++j)
        {
            if (nums[i] + 1 == nums[j] || nums[i] - 1 == nums[j])
            {
                tmp = cnt[nums[i] - min] + cnt[nums[j] - min];

                if (tmp > ans)
                    ans = tmp;
            }
        }
    }

    return ans;
}

int main()
{
    return 0;
}